#ifndef _SYS_READONLY_ERR_H_
#define _SYS_READONLY_ERR_H_

#include "Err.h"
#include "SysTypes.h"

#define READONLY_ERR_VTABLE(self)   ((ReadonlyErrVTable*)((FanObj*)self)->vtable)


extern Type*    ReadonlyErr_classType;
extern VTable*  ReadonlyErr_classVTable;


/* [sys::ReadonlyErr] Attributes */
struct ReadonlyErr
{
  Err           super;
};


/* [sys::ReadonlyErr] Virtual-table */
typedef struct ReadonlyErrVTable
{
  ErrVTable     super;
} ReadonlyErrVTable;


/* [sys::ReadonlyErr] Methods and fields */
void            ReadonlyErr_make_0(ReadonlyErr* self);
void            ReadonlyErr_make_1(ReadonlyErr* self, Str* msg);
void            ReadonlyErr_make(ReadonlyErr* self, Str* msg, Err* cause);


/* [sys::ReadonlyErr] Extra methods */
ReadonlyErr*    ReadonlyErr_new(Str* msg, Err* cause);
ReadonlyErr*    ReadonlyErr_newWithFormattedMsg(const char* msgFormat, ...);


/* [sys::ReadonlyErr] Type-system functions */
Type*           ReadonlyErr_initType(void);
VTable*         ReadonlyErr_initVTable(void);
void            ReadonlyErr_initStatic(void);


#endif
